home *** CD-ROM | disk | FTP | other *** search
Wrap
/* -- ANSI C code generated by : -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82) -- -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE -- -- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr -- -- http://www.loria.fr/SmallEiffel -- */ #include "compile_to_jvm.h" void r999error_comparison(T999* C,T0* a1){ r683add_position((((T454*)((T454*)((((T999*)C))->_feature_name/*28*/))))->_start_position/*8*/); /*[IRF3.6append*/{T0* b1=((T0*)ms7_841); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=a1; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6append*/{T0* b1=((T0*)ms8_841); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683add_type((((T999*)C))->_current_type/*8*/,((T0*)ms67_470)); r683print_as_error(((T683*)(oBC364eh))); } /*No:CALL_INFIX_EQ.arguments*/ T0* r999add_comment(T999* C,T0* a1){ T0* R=NULL; /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) { R=(T0*)C; } else { {T529*n=malloc(sizeof(*n)); *n=M529; r529make(n,(T0*)C,a1); R=(T0*)n; } } /*FI*/return R; } int r999to_integer(T999* C){ int R=0; r999error(/*(IRF4.6start_position*/(((T454*)((T454*)((((T999*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/,((T0*)ms69_470)); return R; } int r999is_a(T999* C,T0* a1){ int R=0; R=X291is_a(X291run_type((((T999*)C))->_result_type/*20*/),X291run_type(X662result_type(a1))); /*IF*/if (!(R)) { r683add_position(/*(IRF4.6start_position*/(((T454*)((T454*)((((T999*)C))->_feature_name/*28*/))))->_start_position/*8*//*)*/); r999error(X662start_position(a1),((T0*)ms4_662)); } /*FI*/return R; } /*No:CALL_INFIX_EQ.is_current*/ /*No:CALL_INFIX_EQ.jvm_branch_if_false*/ void r999jvm_standard_is_equal_aux(T0* a1,T0* a2){ int _i=0; int _space=0; int _idx=0; int _point2=0; int _point1=0; T0* _rf2=NULL; T0* _ca=NULL; _ca=oBC364code_attribute; /*IF*/if ((a2)==((void*)(NULL))) { /*IF*/if (X291is_expanded((((T355*)((T355*)a1)))->_current_type/*0*/)) { /*[IRF3.4opcode_pop*/r256opcode(((T256*)_ca),87,-(1)); /*]*/ /*[IRF3.4opcode_pop*/r256opcode(((T256*)_ca),87,-(1)); /*]*/ /*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)_ca),4,1); /*]*/ } else { /*[IRF3.4opcode_swap*/r256opcode(((T256*)_ca),95,0); /*]*/ /*[IRF3.4opcode_pop*/r256opcode(((T256*)_ca),87,-(1)); /*]*/ _idx=r355fully_qualified_constant_pool_index(((T355*)a1)); r256opcode_instanceof(((T256*)_ca),_idx); } /*FI*/} else { /*[IRF3.3clear*/((((T226*)(((T226*)(oBC256branches)))))->_upper)=(-(1)); /*]*/ /*[IRF3.4opcode_dup*/r256opcode(((T256*)_ca),89,1); /*]*/ _idx=r355fully_qualified_constant_pool_index(((T355*)a1)); r256opcode_instanceof(((T256*)_ca),_idx); r226add_last(((T226*)(oBC256branches)),r256opcode_ifeq(((T256*)_ca))); _i=(((T280*)((T280*)a2)))->_upper/*12*/; while (!((_i)==(0))) { _rf2=r280item(((T280*)a2),_i); _idx=r95idx_fieldref(((T95*)(oBC364constant_pool)),_rf2); _space=(X291jvm_stack_space((((T820*)((T820*)_rf2)))->_result_type/*24*/))-(1); /*IF*/if ((_i)>(1)) { /*[IRF3.4opcode_dup2*/r256opcode(((T256*)_ca),92,2); /*]*/ } /*FI*/r256opcode_getfield(((T256*)_ca),_idx,_space); /*IF*/if ((_space)==(0)) { /*[IRF3.4opcode_swap*/r256opcode(((T256*)_ca),95,0); /*]*/ } else { /*[IRF3.4opcode_dup2_x1*/r256opcode(((T256*)_ca),93,2); /*]*/ /*[IRF3.4opcode_pop2*/r256opcode(((T256*)_ca),88,-(2)); /*]*/ } /*FI*/r256opcode_getfield(((T256*)_ca),_idx,_space); /*IF*/if ((_i)>(1)) { r226add_last(((T226*)(oBC256branches)),X291jvm_if_x_ne((((T820*)((T820*)_rf2)))->_result_type/*24*/)); } else { _point1=X291jvm_if_x_ne((((T820*)((T820*)_rf2)))->_result_type/*24*/); } /*FI*/_i=(_i)-(1); } /*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)_ca),4,1); /*]*/ _point2=r256opcode_goto(((T256*)_ca)); /*[IRF3.2resolve_branches*/r256resolve_with(oBC256branches); /*]*/ /*[IRF3.4opcode_pop*/r256opcode(((T256*)_ca),87,-(1)); /*]*/ /*[IRF3.4opcode_pop*/r256opcode(((T256*)_ca),87,-(1)); /*]*/ r256resolve_u2_branch(_point1); /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)_ca),3,1); /*]*/ r256resolve_u2_branch(_point2); } /*FI*/} T0* r999type_boolean(void){ if (fBC364type_boolean==0){ T0* R=NULL; fBC364type_boolean=1; {T707*n=malloc(sizeof(*n)); *n=M707; r707make(n,NULL); R=(T0*)n; } oBC364type_boolean=R;} return oBC364type_boolean;} /*No:CALL_INFIX_EQ.static_value*/ void r999make(T999* C,T0* a1,T0* a2,T0* a3){ T0* _eal=NULL; /*IF*/if (((a1)==((void*)(NULL)))||((a3)==((void*)(NULL)))) { r683add_position(a2); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_618); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/{T454*n=malloc(sizeof(*n)); *n=M454; r454make(n,r999operator(),a2); C->_feature_name=(T0*)n; } {T431*n=malloc(sizeof(*n)); *n=M431; /*[IRF3.3make*/((((T431*)(n)))->_list)=(se_ma96(1,a3)); /*]*/ _eal=(T0*)n; } r999make_call_1(C,a1,(((T999*)C))->_feature_name/*28*/,_eal); } /*No:CALL_INFIX_EQ.nb_errors*/ void r999to_runnable_equal_not_equal(T999* C,T0* a1){ T0* _at=NULL; T0* _tt=NULL; T0* _a=NULL; T0* _t=NULL; C->_current_type=a1; _t=X662to_runnable((((T999*)C))->_target/*12*/,a1); /*IF*/if ((_t)==((void*)(NULL))) { r999error(X662start_position((((T999*)C))->_target/*12*/),((T0*)ms1_841)); } else { C->_target=_t; } /*FI*/_a=r431to_runnable(((T431*)((((T999*)C))->_arguments/*24*/)),a1); /*IF*/if ((_a)!=((void*)(NULL))) { C->_arguments=_a; } /*FI*//*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { _tt=X291run_type(X662result_type((((T999*)C))->_target/*12*/)); _at=X291run_type(X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/)); /*IF*/if (X291is_none(_tt)) { /*IF*/if (X291is_expanded(_at)) { X291used_as_reference(_at); } /*FI*/} else if (X291is_none(_at)) { /*IF*/if (X291is_expanded(_tt)) { X291used_as_reference(_tt); } /*FI*/} else if (X291is_reference(_tt)) { /*IF*/if (X291is_reference(_at)) { /*IF*/if (X291is_a(_tt,_at)) { } else { /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0); /*]*/ r38clear(((T38*)(oBC683positions))); /*]*/ /*IF*/if (X291is_a(_at,_tt)) { } else { r999error_comparison(C,((T0*)ms2_841)); } /*FI*/} /*FI*/} else if (!(X291is_a(_at,_tt))) { r999error_comparison(C,((T0*)ms3_841)); } else { X291used_as_reference(_at); } /*FI*/} else { /*IF*/if (X291is_expanded(_at)) { /*IF*/if (X291is_basic_eiffel_expanded(_at)) { /*IF*/if (X291is_a(_tt,_at)) { } else { /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0); /*]*/ r38clear(((T38*)(oBC683positions))); /*]*/ /*IF*/if (X291is_a(_at,_tt)) { } else { r999error_comparison(C,((T0*)ms4_841)); } /*FI*/} /*FI*/} else if (X291is_bit(_tt)) { r999bit_limitation(C,_tt,_at); } else if (!(X291is_a(_at,_tt))) { r999error_comparison(C,((T0*)ms5_841)); } /*FI*/} else if (!(X291is_a(_tt,_at))) { r999error_comparison(C,((T0*)ms6_841)); } else { X291used_as_reference(_tt); } /*FI*/} /*FI*/} /*FI*/} /*No:CALL_INFIX_EQ.feature_name*/ /*No:CALL_INFIX_EQ.compile_to_jvm_assignment*/ /*No:CALL_INFIX_EQ.fz_iinaiv*/ /*No:CALL_INFIX_EQ.arg_count*/ /*No:CALL_INFIX_EQ.jvm_branch_if_true*/ /*No:CALL_INFIX_EQ.run_feature*/ /*No:CALL_INFIX_EQ.start_position*/ void r999compile_to_jvm_old(T999* C){ X662compile_to_jvm_old((((T999*)C))->_target/*12*/); /*IF*/{/*AT*/r431compile_to_jvm_old(((T431*)((((T999*)C))->_arguments/*24*/))); } /*FI*/} /*No:CALL_INFIX_EQ.target*/ T0* r999to_runnable(T999* C,T0* a1){ T0* R=NULL; /*IF*/if (((((T999*)C))->_current_type/*8*/)==((void*)(NULL))) { r999to_runnable_equal_not_equal(C,a1); C->_result_type=r999type_boolean(); /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) { R=(T0*)C; } /*FI*/} else { {T999*n=malloc(sizeof(*n)); *n=M999; r999make(n,(((T999*)C))->_target/*12*/,(((T454*)((T454*)((((T999*)C))->_feature_name/*28*/))))->_start_position/*8*/,/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/); R=(T0*)n; } R=r999to_runnable(((T999*)R),a1); } /*FI*/return R; } /*No:CALL_INFIX_EQ.result_type*/ /*No:CALL_INFIX_EQ.is_result*/ T0* r999operator(void){ T0* R=NULL; R=((T0*)ms31_473); return R; } int r999is_static(T999* C){ int R=0; /*IF*/if (X662is_void((((T999*)C))->_target/*12*/)) { R=r999is_static_eq_void(C,/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/); } else if (X662is_void(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/)) { R=r999is_static_eq_void(C,(((T999*)C))->_target/*12*/); } else if ((X662is_static((((T999*)C))->_target/*12*/))&&(X662is_static(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/))) { R=1; /*IF*/if ((X662static_value((((T999*)C))->_target/*12*/))==(X662static_value(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/))) { C->_static_value_mem=1; } /*FI*/} /*FI*/return R; } void r999standard_compile_target_to_jvm(T999* C){ r999compile_to_jvm(C); X291jvm_check_class_invariant((((T999*)C))->_result_type/*20*/); } int r999compile_to_jvm_into(T999* C,T0* a1){ int R=0; R=r999standard_compile_to_jvm_into(C,a1); return R; } /*No:CALL_INFIX_EQ.compile_target_to_jvm*/ int r999is_static_eq_void(T999* C,T0* a1){ int R=0; T0* _rt=NULL; /*IF*/if (X662is_current(a1)) { R=1; } else if (X662is_manifest_string(a1)) { R=1; } else if (r999is_manifest_array(a1)) { R=1; } else { _rt=X291run_type(X662result_type(a1)); /*IF*/if (X291is_expanded(_rt)) { /*IF*/if (X662can_be_dropped(a1)) { R=1; } /*FI*/} else if (X662is_static(a1)) { /*IF*/if ((X662static_value(a1))==(0)) { R=1; C->_static_value_mem=1; } /*FI*/} /*FI*/} /*FI*/return R; } /*No:CALL_INFIX_EQ.can_be_dropped*/ void r999bit_limitation(T999* C,T0* a1,T0* a2){ T0* _b2=NULL; T0* _b1=NULL; _b1=a1; if(NULL!=(_b1))switch(((T0*)_b1)->id) { case 549: case 558: break; default: _b1=NULL; };_b2=a2; if(NULL!=(_b2))switch(((T0*)_b2)->id) { case 549: case 558: break; default: _b2=NULL; };/*IF*/if ((X609nb(_b1))!=(X609nb(_b2))) { r683add_position((((T454*)((T454*)((((T999*)C))->_feature_name/*28*/))))->_start_position/*8*/); /*[IRF3.6append*/{T0* b1=((T0*)ms9_841); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683add_type(_b1,((T0*)ms10_841)); r683add_type(_b2,((T0*)ms11_841)); r683print_as_fatal_error(((T683*)(oBC364eh))); } /*FI*/} /*No:CALL_INFIX_EQ.current_type*/ /*No:CALL_INFIX_EQ.jvm_assign*/ /*No:CALL_INFIX_EQ.static_value_mem*/ void r999make_call_1(T999* C,T0* a1,T0* a2,T0* a3){ C->_target=a1; C->_feature_name=a2; C->_arguments=a3; } /*No:CALL_INFIX_EQ.is_manifest_string*/ /*No:CALL_INFIX_EQ.us_eq*/ /*No:CALL_INFIX_EQ.is_void*/ int r999is_manifest_array(T0* a1){ int R=0; T0* _ma=NULL; _ma=a1; if(NULL!=(_ma))switch(((T0*)_ma)->id) { case 436: break; default: _ma=NULL; };R=(_ma)!=((void*)(NULL)); return R; } int r999jvm_standard_branch_if_false(T999* C){ int R=0; r999compile_to_jvm(C); R=r256opcode_ifeq(((T256*)(oBC364code_attribute))); return R; } /*No:CALL_INFIX_EQ.fz_dot*/ void r999compile_to_jvm(T999* C){ T0* _rc=NULL; T0* _rt=NULL; int _point2=0; int _point1=0; int _space=0; /*IF*/if (X662is_void((((T999*)C))->_target/*12*/)) { r999jvm_void_cmp(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/); } else if (X662is_void(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/)) { r999jvm_void_cmp((((T999*)C))->_target/*12*/); } else { _rt=X291smallest_ancestor(X662result_type((((T999*)C))->_target/*12*/),X662result_type(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/)); _space=X662compile_to_jvm_into((((T999*)C))->_target/*12*/,_rt); _space=X662compile_to_jvm_into(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/,_rt); /*IF*/if (X291is_user_expanded(_rt)) { _rc=X291run_class(_rt); r999jvm_standard_is_equal_aux(_rc,r355writable_attributes(((T355*)_rc))); } else { _point1=X291jvm_if_x_eq(_rt); /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)(oBC364code_attribute)),3,1); /*]*/ _point2=r256opcode_goto(((T256*)(oBC364code_attribute))); r256resolve_u2_branch(_point1); /*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)(oBC364code_attribute)),4,1); /*]*/ r256resolve_u2_branch(_point2); } /*FI*/} /*FI*/} void r999jvm_void_cmp(T0* a1){ int _space=0; int _point2=0; int _point1=0; T0* _rt=NULL; _rt=X291run_type(X662result_type(a1)); /*IF*/if (X291is_expanded(_rt)) { X662compile_to_jvm(a1); _space=X291jvm_stack_space(_rt); while (!((_space)==(0))) { /*[IRF3.4opcode_pop*/r256opcode(((T256*)(oBC364code_attribute)),87,-(1)); /*]*/ _space=(_space)-(1); } /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)(oBC364code_attribute)),3,1); /*]*/ } else { X662compile_to_jvm(a1); _point1=r256opcode_ifnull(((T256*)(oBC364code_attribute))); /*[IRF3.4opcode_iconst_0*/r256opcode(((T256*)(oBC364code_attribute)),3,1); /*]*/ _point2=r256opcode_goto(((T256*)(oBC364code_attribute))); r256resolve_u2_branch(_point1); /*[IRF3.4opcode_iconst_1*/r256opcode(((T256*)(oBC364code_attribute)),4,1); /*]*/ r256resolve_u2_branch(_point2); } /*FI*/} /*No:CALL_INFIX_EQ.is_pre_computable*/ int r999jvm_standard_branch_if_true(T999* C){ int R=0; r999compile_to_jvm(C); R=r256opcode_ifne(((T256*)(oBC364code_attribute))); return R; } int r999use_current(T999* C){ int R=0; R=(X662use_current((((T999*)C))->_target/*12*/))||(X662use_current(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/)); return R; } void r999error(T0* a1,T0* a2){ r683add_position(a1); r683error(((T683*)(oBC364eh)),a2); } /*No:CALL_INFIX_EQ.isa_dca_inline_argument*/ /*No:CALL_INFIX_EQ.fatal_error*/ /*No:CALL_INFIX_EQ.arg1*/ int r999standard_compile_to_jvm_into(T999* C,T0* a1){ int R=0; r999compile_to_jvm(C); R=X291jvm_convert_to(X291run_type((((T999*)C))->_result_type/*20*/),a1); return R; } void r999afd_check(T999* C){ X662afd_check((((T999*)C))->_target/*12*/); X662afd_check(/*(IRF4.6arg1*/r431first(((T431*)((((T999*)C))->_arguments/*24*/)))/*)*/); } /*No:CODE_ATTRIBUTE.opcode_fconst_0*/ /*No:CODE_ATTRIBUTE.opcode_dconst_0*/ /*No:CODE_ATTRIBUTE.opcode_iconst_0*/ int r256opcode_goto(T256* C){ int R=0; r256opcode(C,167,0); R=r256skip_2_bytes(); return R; } int r256skip_2_bytes(void){ int R=0; R=/*(IRF4.9program_counter*//*(IRF4.6count*/((((T226*)((T226*)(oBC256code))))->_upper/*8*/)+(1)/*)*//*)*/; r226add_last(((T226*)(oBC256code)),0); r226add_last(((T226*)(oBC256code)),0); return R; } /*No:CODE_ATTRIBUTE.opcode_dup_x2*/ void r256opcode_invokespecial(T256* C,int a1,int a2){ r256opcode(C,183,a2); r256add_u2(a1); } int r256opcode_ifgt(T256* C){ int R=0; r256opcode(C,157,-(1)); R=r256skip_2_bytes(); return R; } /*No:CODE_ATTRIBUTE.check_flag_idx*/ /*No:CODE_ATTRIBUTE.opcode_fdiv*/ /*No:CODE_ATTRIBUTE.opcode_astore_1*/ void r256opcode_invokestatic(T256* C,int a1,int a2){ r256opcode(C,184,a2); r256add_u2(a1); } /*No:CODE_ATTRIBUTE.opcode_aconst_null*/ /*No:CODE_ATTRIBUTE.max_locals*/ /*No:CODE_ATTRIBUTE.opcode_dcmpg*/ /*No:CODE_ATTRIBUTE.program_counter*/ /*No:CODE_ATTRIBUTE.opcode_fadd*/ /*No:CODE_ATTRIBUTE.opcode_irem*/ /*No:CODE_ATTRIBUTE.opcode_dneg*/ /*No:CODE_ATTRIBUTE.add_u1*/ int r256opcode_if_icmpgt(T256* C){ int R=0; r256opcode(C,163,-(2)); R=r256skip_2_bytes(); return R; } /*No:CODE_ATTRIBUTE.opcode_iconst_1*/ /*No:CODE_ATTRIBUTE.append_u1*/ int r256opcode_if_icmpne(T256* C){ int R=0; r256opcode(C,160,-(2)); R=r256skip_2_bytes(); return R; } T0*oBC256code=NULL; void r256add_u2(int a1){ /*[IRF3.6add_u1*/{int b1=(a1)/(256); r226add_last(((T226*)(oBC256code)),b1); }/*]*/ /*[IRF3.6add_u1*/{int b1=(a1)%(256); r226add_last(((T226*)(oBC256code)),b1); }/*]*/ } /*No:CODE_ATTRIBUTE.opcode_dsub*/ /*No:CODE_ATTRIBUTE.opcode_freturn*/ /*No:CODE_ATTRIBUTE.opcode_dreturn*/ /*No:CODE_ATTRIBUTE.opcode_ireturn*/ /*No:CODE_ATTRIBUTE.opcode_areturn*/ void r256opcode_system_err(T256* C){ int _idx=0; _idx=r95idx_fieldref3(((T95*)(oBC364constant_pool)),((T0*)ms168_470),((T0*)ms175_470),((T0*)ms172_470)); r256opcode_getstatic(C,_idx,1); } /*No:CODE_ATTRIBUTE.opcode_dup2*/ void r256append_u2(T0* a1,int a2){ /*[IRF3.6append_u1*/{T0* b1=a1; int b2=(a2)/(256); r7extend(((T7*)b1),((char)(b2))); }/*]*/ /*[IRF3.6append_u1*/{T0* b1=a1; int b2=(a2)%(256); r7extend(((T7*)b1),((char)(b2))); }/*]*/ } /*No:CODE_ATTRIBUTE.opcode_fcmpg*/ void r256push_strange_integer(T256* C,int a1){ T0* _cp=NULL; int _idx=0; _cp=oBC364constant_pool; /*[IRF3.3clear*/((((T7*)(((T7*)(oBC256tmp_string)))))->_count)=(0); /*]*/ r2append_in(a1,oBC256tmp_string); _idx=r95idx_string(((T95*)_cp),oBC256tmp_string); r256opcode_ldc(C,_idx); _idx=r95idx_methodref3(((T95*)_cp),((T0*)ms207_470),((T0*)ms208_470),((T0*)ms209_470)); r256opcode_invokestatic(C,_idx,0); } void r256opcode_aload(T256* C,int a1){ /*IF*/if ((a1)<=(3)) { r256opcode(C,(42)+(a1),1); } else { r256opcode(C,25,1); /*[IRF3.6add_u1*/{int b1=a1; r226add_last(((T226*)(oBC256code)),b1); }/*]*/ } /*FI*/} /*No:CODE_ATTRIBUTE.opcode_idiv*/ void r256check_opening(T256* C){ T0* _cp=NULL; _cp=oBC364constant_pool; C->_check_flag_idx=r95idx_fieldref3(((T95*)_cp),r256jvm_root_class(),((T0*)ms184_470),((T0*)ms173_470)); r256opcode_getstatic(C,(((T256*)C))->_check_flag_idx/*16*/,1); C->_skip_check=r256opcode_ifne(C); /*[IRF3.4opcode_iconst_1*/r256opcode(C,4,1); /*]*/ r256opcode_putstatic(C,(((T256*)C))->_check_flag_idx/*16*/,-(1)); } /*No:CODE_ATTRIBUTE.opcode_fneg*/ int r256opcode_ifle(T256* C){ int R=0; r256opcode(C,158,-(1)); R=r256skip_2_bytes(); return R; } /*No:CODE_ATTRIBUTE.opcode_iushr*/ T0* r256jvm_root_class(void){ if (fBC364jvm_root_class==0){ T0* R=NULL; fBC364jvm_root_class=1; {T7*n=malloc(sizeof(*n)); *n=M7; r7make(n,12); R=(T0*)n; } r7copy(((T7*)R),(((T228*)((T228*)(oBC364jvm))))->_output_name/*16*/); r7extend(((T7*)R),'\57'); r7append(((T7*)R),((T0*)ms112_470)); oBC364jvm_root_class=R;} return oBC364jvm_root_class;} void r256opcode_bytes_array2eiffel_string(T256* C){ int _loc=0; T0* _cp=NULL; _cp=oBC364constant_pool; _loc=r256extra_local_size1(C); r256opcode_astore(C,_loc); r256opcode_new(C,r95idx_eiffel_string_class(((T95*)_cp))); /*[IRF3.4opcode_dup*/r256opcode(C,89,1); /*]*/ r256opcode_aload(C,_loc); /*[IRF3.4opcode_arraylength*/r256opcode(C,190,0); /*]*/ r256opcode_putfield(C,r95idx_eiffel_string_count_fieldref(((T95*)_cp)),-(2)); /*[IRF3.4opcode_dup*/r256opcode(C,89,1); /*]*/ r256opcode_aload(C,_loc); /*[IRF3.4opcode_arraylength*/r256opcode(C,190,0); /*]*/ r256opcode_putfield(C,r95idx_eiffel_string_capacity_fieldref(((T95*)_cp)),-(2)); /*[IRF3.4opcode_dup*/r256opcode(C,89,1); /*]*/ r256opcode_aload(C,_loc); r256opcode_putfield(C,r95idx_eiffel_string_storage_fieldref(((T95*)_cp)),-(2)); } void r256opcode_java_string2eiffel_string(T256* C){ r256opcode_java_string2bytes_array(C); r256opcode_bytes_array2eiffel_string(C); } /*No:CODE_ATTRIBUTE.opcode_iconst_i*/ void r256opcode_runtime_get_runtime(T256* C){ int _idx=0; _idx=r95idx_methodref3(((T95*)(oBC364constant_pool)),((T0*)ms179_470),((T0*)ms181_470),((T0*)ms182_470)); r256opcode_invokestatic(C,_idx,1); } /*No:CODE_ATTRIBUTE.opcode_fsub*/ /*No:CODE_ATTRIBUTE.opcode_iadd*/ /*No:CODE_ATTRIBUTE.opcode_astore_3*/ /*No:CODE_ATTRIBUTE.opcode_ishl*/ /*No:CODE_ATTRIBUTE.opcode_aaload*/ void r256opcode_system_err_println(T256* C,int a1){ r256opcode_system_err(C); r256opcode_println(C,a1); } void r256resolve_with(T0* a1){ int _i=0; _i=(((T226*)((T226*)a1)))->_upper/*8*/; while (!((_i)<(0))) { r256resolve_u2_branch(/*(IRF4.6item*/((((T226*)((T226*)a1)))->_storage/*0*/)[_i]/*)*/); _i=(_i)-(1); } } void r256append_u4(T0* a1,int a2){ r256append_u2(a1,(a2)/(65536)); r256append_u2(a1,(a2)%(65536)); } void r256opcode_println(T256* C,int a1){ int _idx=0; r256opcode_ldc(C,a1); _idx=r95idx_methodref3(((T95*)(oBC364constant_pool)),((T0*)ms157_470),((T0*)ms177_470),((T0*)ms183_470)); r256opcode_invokevirtual(C,_idx,-(2)); } void r256store_in(T256* C,T0* a1){ int _i=0; r256append_u2(a1,(((T95*)((T95*)(oBC364constant_pool))))->_idx_uft8_code/*4*/); r256append_u4(a1,(12)+(/*(IRF4.9program_counter*//*(IRF4.6count*/((((T226*)((T226*)(oBC256code))))->_upper/*8*/)+(1)/*)*//*)*/)); r256append_u2(a1,(((T256*)C))->_max_stack/*0*/); r256append_u2(a1,(((T256*)C))->_max_locals/*8*/); r256append_u4(a1,/*(IRF4.9program_counter*//*(IRF4.6count*/((((T226*)((T226*)(oBC256code))))->_upper/*8*/)+(1)/*)*//*)*/); _i=0; while (!((_i)>((((T226*)((T226*)(oBC256code))))->_upper/*8*/))) { /*[IRF3.6append_u1*/{T0* b1=a1; int b2=/*(IRF4.6item*/((((T226*)((T226*)(oBC256code))))->_storage/*0*/)[_i]/*)*/; r7extend(((T7*)b1),((char)(b2))); }/*]*/ _i=(_i)+(1); } r613store_in(a1); r256append_u2(a1,0); } void r256opcode_push_manifest_string(T256* C,T0* a1){ int _ms_idx=0; _ms_idx=r95idx_string2(((T95*)(oBC364constant_pool)),a1); r256opcode_ldc(C,_ms_idx); r256opcode_java_string2eiffel_string(C); } /*No:CODE_ATTRIBUTE.opcode_baload*/ int r256opcode_ifnull(T256* C){ int R=0; r256opcode(C,198,-(1)); R=r256skip_2_bytes(); return R; } T0*oBC256exception_table=NULL; int r256opcode_if_icmpge(T256* C){ int R=0; r256opcode(C,162,-(2)); R=r256skip_2_bytes(); return R; } void r256opcode_dload(T256* C,int a1){ /*IF*/if ((a1)<=(3)) { r256opcode(C,(38)+(a1),2); } else { r256opcode(C,24,2); /*[IRF3.6add_u1*/{int b1=a1; r226add_last(((T226*)(oBC256code)),b1); }/*]*/ } /*FI*/} int r256opcode_ifne(T256* C){ int R=0; r256opcode(C,154,-(1)); R=r256skip_2_bytes(); return R; } /*No:CODE_ATTRIBUTE.opcode_ineg*/ int r256opcode_iflt(T256* C){ int R=0; r256opcode(C,155,-(1)); R=r256skip_2_bytes(); return R; } void r256opcode_iinc(T256* C,int a1,int a2){ r256opcode(C,132,0); /*[IRF3.6add_u1*/{int b1=a1; r226add_last(((T226*)(oBC256code)),b1); }/*]*/ /*[IRF3.6add_u1*/{int b1=a2; r226add_last(((T226*)(oBC256code)),b1); }/*]*/ } void r256opcode_push_as_float(T256* C,T0* a1){ {int z1=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(1)-(1)]/*)*/; if((48==z1)){ /*IF*/if (((((T7*)((T7*)a1)))->_count/*4*/)==(1)) { r256opcode(C,11,1); } else { {int z2=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(2)-(1)]/*)*/; if((46==z2)){ /*IF*/if (((((T7*)((T7*)a1)))->_count/*4*/)==(2)) { r256opcode(C,11,1); } else if ((((((T7*)((T7*)a1)))->_count/*4*/)==(3))&&((/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(3)-(1)]/*)*/)==('0'))) { r256opcode(C,11,1); } else { r256opcode_string2float(C,a1); } /*FI*/} else{r256opcode_string2float(C,a1); }} } /*FI*/} else if((49==z1)){ /*IF*/if (((((T7*)((T7*)a1)))->_count/*4*/)==(1)) { r256opcode(C,12,1); } else { {int z2=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(2)-(1)]/*)*/; if((46==z2)){ /*IF*/if (((((T7*)((T7*)a1)))->_count/*4*/)==(2)) { r256opcode(C,12,1); } else if ((((((T7*)((T7*)a1)))->_count/*4*/)==(3))&&((/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(3)-(1)]/*)*/)==('0'))) { r256opcode(C,12,1); } else { r256opcode_string2float(C,a1); } /*FI*/} else{r256opcode_string2float(C,a1); }} } /*FI*/} else if((50==z1)){ /*IF*/if (((((T7*)((T7*)a1)))->_count/*4*/)==(1)) { r256opcode(C,13,1); } else { {int z2=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(2)-(1)]/*)*/; if((46==z2)){ /*IF*/if (((((T7*)((T7*)a1)))->_count/*4*/)==(2)) { r256opcode(C,13,1); } else if ((((((T7*)((T7*)a1)))->_count/*4*/)==(3))&&((/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(3)-(1)]/*)*/)==('0'))) { r256opcode(C,13,1); } else { r256opcode_string2float(C,a1); } /*FI*/} else{r256opcode_string2float(C,a1); }} } /*FI*/} else{r256opcode_string2float(C,a1); }} } void r256opcode_runtime_trace_instructions(T256* C,int a1){ int _idx=0; r256opcode_runtime_get_runtime(C); /*IF*/if (a1) { /*[IRF3.4opcode_iconst_1*/r256opcode(C,4,1); /*]*/ } else { /*[IRF3.4opcode_iconst_0*/r256opcode(C,3,1); /*]*/ } /*FI*/_idx=r95idx_methodref3(((T95*)(oBC364constant_pool)),((T0*)ms179_470),((T0*)ms178_470),((T0*)ms180_470)); r256opcode_invokevirtual(C,_idx,-(2)); } /*No:CODE_ATTRIBUTE.opcode_athrow*/ /*No:CODE_ATTRIBUTE.opcode_isub*/ /*No:CODE_ATTRIBUTE.opcode_dup2_x1*/ void r256opcode_sipush(T256* C,int a1){ r256opcode(C,17,1); r256add_u2(a1); } void r256clear(T256* C){ /*[IRF3.3clear*/((((T226*)(((T226*)(oBC256code)))))->_upper)=(-(1)); /*]*/ /*[IRF3.2clear*//*[IRF3.3clear*/((((T226*)(((T226*)(oBC613from_pc)))))->_upper)=(-(1)); /*]*/ /*[IRF3.3clear*/((((T226*)(((T226*)(oBC613to_pc)))))->_upper)=(-(1)); /*]*/ /*[IRF3.3clear*/((((T226*)(((T226*)(oBC613handler_pc)))))->_upper)=(-(1)); /*]*/ /*[IRF3.3clear*/((((T226*)(((T226*)(oBC613type_idx)))))->_upper)=(-(1)); /*]*/ /*]*/ C->_max_stack=0; C->_current_stack_level=0; C->_max_locals=r228max_locals(((T228*)(oBC364jvm))); } /*No:CODE_ATTRIBUTE.opcode_daload*/ /*No:CODE_ATTRIBUTE.opcode_dload_0*/ /*No:CODE_ATTRIBUTE.opcode_pop2*/ void r256opcode_instanceof(T256* C,int a1){ r256opcode(C,193,0); r256add_u2(a1); } void r256opcode_system_exit(T256* C){ int _idx=0; _idx=r95idx_methodref3(((T95*)(oBC364constant_pool)),((T0*)ms168_470),((T0*)ms102_470),((T0*)ms159_470)); r256opcode_invokestatic(C,_idx,0); } /*No:CODE_ATTRIBUTE.opcode_aload_0*/ void r256opcode_fload(T256* C,int a1){ /*IF*/if ((a1)<=(3)) { r256opcode(C,(34)+(a1),1); } else { r256opcode(C,23,1); /*[IRF3.6add_u1*/{int b1=a1; r226add_last(((T226*)(oBC256code)),b1); }/*]*/ } /*FI*/} void r256opcode_newarray(T256* C,int a1){ r256opcode(C,188,0); /*[IRF3.6add_u1*/{int b1=a1; r226add_last(((T226*)(oBC256code)),b1); }/*]*/ } /*No:CODE_ATTRIBUTE.fz_40*/ /*No:CODE_ATTRIBUTE.max_stack*/ void r256opcode_getfield(T256* C,int a1,int a2){ r256opcode(C,180,a2); r256add_u2(a1); } void r256opcode_putfield(T256* C,int a1,int a2){ r256opcode(C,181,a2); r256add_u2(a1); } /*No:CODE_ATTRIBUTE.opcode_dup*/ int r256opcode_if_acmpne(T256* C){ int R=0; r256opcode(C,166,-(2)); R=r256skip_2_bytes(); return R; } T0*oBC256branches=NULL; /*No:CODE_ATTRIBUTE.fz_41*/ /*No:CODE_ATTRIBUTE.fz_32*/ void r256opcode_invokevirtual(T256* C,int a1,int a2){ r256opcode(C,182,a2); r256add_u2(a1); } /*No:CODE_ATTRIBUTE.fz_60*/ void r256opcode_bipush(T256* C,int a1){ r256opcode(C,16,1); /*[IRF3.6add_u1*/{int b1=a1; r226add_last(((T226*)(oBC256code)),b1); }/*]*/ } /*No:CODE_ATTRIBUTE.fz_51*/ /*No:CODE_ATTRIBUTE.opcode_ior*/ void r256opcode_new(T256* C,int a1){ r256opcode(C,187,1); r256add_u2(a1); } /*No:CODE_ATTRIBUTE.skip_check*/ /*No:CODE_ATTRIBUTE.fz_33*/ void r256opcode_astore(T256* C,int a1){ /*IF*/if ((a1)<=(3)) { r256opcode(C,(75)+(a1),-(1)); } else { r256opcode(C,58,-(1)); /*[IRF3.6add_u1*/{int b1=a1; r226add_last(((T226*)(oBC256code)),b1); }/*]*/ } /*FI*/} int r256opcode_if_icmpeq(T256* C){ int R=0; r256opcode(C,159,-(2)); R=r256skip_2_bytes(); return R; } /*No:CODE_ATTRIBUTE.fz_61*/ void r256opcode_java_string2bytes_array(T256* C){ int _idx=0; _idx=r95idx_methodref3(((T95*)(oBC364constant_pool)),((T0*)ms164_470),((T0*)ms165_470),((T0*)ms166_470)); r256opcode_invokevirtual(C,_idx,0); } /*No:CODE_ATTRIBUTE.fz_52*/ /*No:CODE_ATTRIBUTE.opcode_dmul*/ /*No:CODE_ATTRIBUTE.opcode_aload_1*/ /*No:CODE_ATTRIBUTE.opcode_faload*/ /*No:CODE_ATTRIBUTE.opcode_f2d*/ /*No:CODE_ATTRIBUTE.fz_34*/ /*No:CODE_ATTRIBUTE.fz_62*/ T0*oBC256tmp_string=NULL; /*No:CODE_ATTRIBUTE.fz_25*/ /*No:CODE_ATTRIBUTE.fz_53*/ /*No:CODE_ATTRIBUTE.opcode_i2b*/ /*No:CODE_ATTRIBUTE.fz_81*/ /*No:CODE_ATTRIBUTE.opcode_d2f*/ /*No:CODE_ATTRIBUTE.resolve_branches*/ /*No:CODE_ATTRIBUTE.fz_54*/ /*No:CODE_ATTRIBUTE.opcode_iconst_m1*/ /*No:CODE_ATTRIBUTE.fz_82*/ void r256opcode_iload(T256* C,int a1){ /*IF*/if ((a1)<=(3)) { r256opcode(C,(26)+(a1),1); } else { r256opcode(C,21,1); /*[IRF3.6add_u1*/{int b1=a1; r226add_last(((T226*)(oBC256code)),b1); }/*]*/ } /*FI*/} /*No:CODE_ATTRIBUTE.fz_36*/ void r256opcode_anewarray(T256* C,int a1){ r256opcode(C,189,0); r256add_u2(a1); } /*No:CODE_ATTRIBUTE.fz_27*/ /*No:CODE_ATTRIBUTE.fz_55*/ /*No:CODE_ATTRIBUTE.opcode_fastore*/ /*No:CODE_ATTRIBUTE.opcode_iastore*/ /*No:CODE_ATTRIBUTE.opcode_dastore*/ /*No:CODE_ATTRIBUTE.opcode_bastore*/ /*No:CODE_ATTRIBUTE.opcode_aastore*/ /*No:CODE_ATTRIBUTE.fz_83*/ int r256opcode_if_icmplt(T256* C){ int R=0; r256opcode(C,161,-(2)); R=r256skip_2_bytes(); return R; } /*No:CODE_ATTRIBUTE.fz_37*/ /*No:CODE_ATTRIBUTE.opcode_aload_2*/ int r256opcode_ifeq(T256* C){ int R=0; r256opcode(C,153,-(1)); R=r256skip_2_bytes(); return R; } /*No:CODE_ATTRIBUTE.opcode_fmul*/ /*No:CODE_ATTRIBUTE.fz_56*/ void r256opcode_push_as_double(T256* C,T0* a1){ {int z1=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(1)-(1)]/*)*/; if((48==z1)){ /*IF*/if (((((T7*)((T7*)a1)))->_count/*4*/)==(1)) { r256opcode(C,14,2); } else { {int z2=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(2)-(1)]/*)*/; if((46==z2)){ /*IF*/if (((((T7*)((T7*)a1)))->_count/*4*/)==(2)) { r256opcode(C,14,2); } else if ((((((T7*)((T7*)a1)))->_count/*4*/)==(3))&&((/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(3)-(1)]/*)*/)==('0'))) { r256opcode(C,14,2); } else { r256opcode_string2double(C,a1); } /*FI*/} else{r256opcode_string2double(C,a1); }} } /*FI*/} else if((49==z1)){ /*IF*/if (((((T7*)((T7*)a1)))->_count/*4*/)==(1)) { r256opcode(C,15,2); } else { {int z2=/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(2)-(1)]/*)*/; if((46==z2)){ /*IF*/if (((((T7*)((T7*)a1)))->_count/*4*/)==(2)) { r256opcode(C,15,2); } else if ((((((T7*)((T7*)a1)))->_count/*4*/)==(3))&&((/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[(3)-(1)]/*)*/)==('0'))) { r256opcode(C,15,2); } else { r256opcode_string2double(C,a1); } /*FI*/} else{r256opcode_string2double(C,a1); }} } /*FI*/} else{r256opcode_string2double(C,a1); }} } /*No:CODE_ATTRIBUTE.fz_38*/ void r256opcode_dstore(T256* C,int a1){ /*IF*/if ((a1)<=(3)) { r256opcode(C,(71)+(a1),-(1)); } else { r256opcode(C,57,-(1)); /*[IRF3.6add_u1*/{int b1=a1; r226add_last(((T226*)(oBC256code)),b1); }/*]*/ } /*FI*/} /*No:CODE_ATTRIBUTE.fz_57*/ void r256opcode_string2double(T256* C,T0* a1){ int _idx=0; _idx=r95idx_string(((T95*)(oBC364constant_pool)),a1); r256opcode_ldc(C,_idx); _idx=r95idx_methodref3(((T95*)(oBC364constant_pool)),((T0*)ms188_470),((T0*)ms186_470),((T0*)ms187_470)); r256opcode_invokestatic(C,_idx,0); } /*No:CODE_ATTRIBUTE.fz_39*/ /*No:CODE_ATTRIBUTE.opcode_iaload*/ /*No:CODE_ATTRIBUTE.opcode_i2d*/ /*No:CODE_ATTRIBUTE.fz_jvm_root*/ int r256opcode_ifnonnull(T256* C){ int R=0; r256opcode(C,199,-(1)); R=r256skip_2_bytes(); return R; } /*No:CODE_ATTRIBUTE.fz_58*/ /*No:CODE_ATTRIBUTE.opcode_arraylength*/ /*No:CODE_ATTRIBUTE.fz_49*/ /*No:CODE_ATTRIBUTE.opcode_aload_3*/ /*No:CODE_ATTRIBUTE.opcode_iload_3*/ /*No:CODE_ATTRIBUTE.current_stack_level*/ /*No:CODE_ATTRIBUTE.opcode_pop*/ /*No:CODE_ATTRIBUTE.fz_exit*/ void r256resolve_u2_branch(int a1){ int _offset=0; _offset=((/*(IRF4.9program_counter*//*(IRF4.6count*/((((T226*)((T226*)(oBC256code))))->_upper/*8*/)+(1)/*)*//*)*/)-(a1))+(1); /*[IRF3.5put*/((((T226*)((T226*)(oBC256code))))->_storage/*0*/)[a1]=((_offset)/(256)); /*]*/ /*[IRF3.5put*/((((T226*)((T226*)(oBC256code))))->_storage/*0*/)[(a1)+(1)]=((_offset)%(256)); /*]*/ } void r256opcode_fstore(T256* C,int a1){ /*IF*/if ((a1)<=(3)) { r256opcode(C,(67)+(a1),-(1)); } else { r256opcode(C,56,-(1)); /*[IRF3.6add_u1*/{int b1=a1; r226add_last(((T226*)(oBC256code)),b1); }/*]*/ } /*FI*/} /*No:CODE_ATTRIBUTE.opcode_d2i*/ void r256opcode(T256* C,int a1,int a2){ /*[IRF3.6add_u1*/{int b1=a1; r226add_last(((T226*)(oBC256code)),b1); }/*]*/ C->_current_stack_level=((((T256*)C))->_current_stack_level/*4*/)+(a2); /*IF*/if (((((T256*)C))->_current_stack_level/*4*/)>((((T256*)C))->_max_stack/*0*/)) { C->_max_stack=(((T256*)C))->_current_stack_level/*4*/; } /*FI*/} /*No:CODE_ATTRIBUTE.opcode_imul*/ void r256opcode_system_out(T256* C){ int _idx=0; _idx=r95idx_fieldref3(((T95*)(oBC364constant_pool)),((T0*)ms168_470),((T0*)ms171_470),((T0*)ms172_470)); r256opcode_getstatic(C,_idx,1); } int r256extra_local(T256* C,T0* a1){ int R=0; R=(((T256*)C))->_max_locals/*8*/; C->_max_locals=((((T256*)C))->_max_locals/*8*/)+(X291jvm_stack_space(a1)); return R; } int r256opcode_ifge(T256* C){ int R=0; r256opcode(C,156,-(1)); R=r256skip_2_bytes(); return R; } void r256opcode_putstatic(T256* C,int a1,int a2){ r256opcode(C,179,a2); r256add_u2(a1); } void r256opcode_getstatic(T256* C,int a1,int a2){ r256opcode(C,178,a2); r256add_u2(a1); } /*No:CODE_ATTRIBUTE.opcode_i2f*/ int r256opcode_if_icmple(T256* C){ int R=0; r256opcode(C,164,-(2)); R=r256skip_2_bytes(); return R; } /*No:CODE_ATTRIBUTE.opcode_return*/ void r256opcode_string2float(T256* C,T0* a1){ r256opcode_string2double(C,a1); /*[IRF3.4opcode_d2f*/r256opcode(C,144,-(1)); /*]*/ } /*No:CODE_ATTRIBUTE.opcode_swap*/ int r256opcode_if_acmpeq(T256* C){ int R=0; r256opcode(C,165,-(2)); R=r256skip_2_bytes(); return R; } /*No:CODE_ATTRIBUTE.opcode_ddiv*/ void r256opcode_system_in(T256* C){ int _idx=0; _idx=r95idx_fieldref3(((T95*)(oBC364constant_pool)),((T0*)ms168_470),((T0*)ms169_470),((T0*)ms170_470)); r256opcode_getstatic(C,_idx,1); } /*No:CODE_ATTRIBUTE.opcode_dup_x1*/ int r256extra_local_size1(T256* C){ int R=0; R=(((T256*)C))->_max_locals/*8*/; C->_max_locals=((((T256*)C))->_max_locals/*8*/)+(1); return R; } void r256opcode_goto_backward(T256* C,int a1){ int _offset=0; int _q=0; int _r=0; _offset=(/*(IRF4.9program_counter*//*(IRF4.6count*/((((T226*)((T226*)(oBC256code))))->_upper/*8*/)+(1)/*)*//*)*/)-(a1); r256opcode(C,167,0); _r=(_offset)%(256); _q=(_offset)/(256); /*IF*/if ((_r)==(0)) { /*[IRF3.6add_u1*/{int b1=(256)-(_q); r226add_last(((T226*)(oBC256code)),b1); }/*]*/ /*[IRF3.6add_u1*/{int b1=0; r226add_last(((T226*)(oBC256code)),b1); }/*]*/ } else { /*[IRF3.6add_u1*/{int b1=(255)-(_q); r226add_last(((T226*)(oBC256code)),b1); }/*]*/ /*[IRF3.6add_u1*/{int b1=(256)-(_r); r226add_last(((T226*)(oBC256code)),b1); }/*]*/ } /*FI*/} void r256opcode_ldc(T256* C,int a1){ /*IF*/if ((a1)<(255)) { r256opcode(C,18,1); /*[IRF3.6add_u1*/{int b1=a1; r226add_last(((T226*)(oBC256code)),b1); }/*]*/ } else { r256opcode(C,19,1); r256add_u2(a1); } /*FI*/} /*No:CODE_ATTRIBUTE.opcode_iand*/ void r256opcode_push_integer(T256* C,int a1){ /*IF*/if ((a1)<(-(32768))) { r256push_strange_integer(C,a1); } else if ((a1)<(-(128))) { r256opcode_sipush(C,a1); } else if ((a1)<=(-(1))) { r256opcode_bipush(C,a1); } else if ((a1)<=(5)) { /*[IRF3.6opcode_iconst_i*/{T256* C1=C; int b1=a1; r256opcode(C1,(3)+(b1),1); }/*]*/ } else if ((a1)<=(127)) { r256opcode_bipush(C,a1); } else if ((a1)<=(32767)) { r256opcode_sipush(C,a1); } else { r256push_strange_integer(C,a1); } /*FI*/} void r256check_closing(T256* C){ /*[IRF3.4opcode_iconst_0*/r256opcode(C,3,1); /*]*/ r256opcode_putstatic(C,(((T256*)C))->_check_flag_idx/*16*/,-(1)); r256resolve_u2_branch((((T256*)C))->_skip_check/*12*/); } void r256opcode_istore(T256* C,int a1){ /*IF*/if ((a1)<=(3)) { r256opcode(C,(59)+(a1),-(1)); } else { r256opcode(C,54,-(1)); /*[IRF3.6add_u1*/{int b1=a1; r226add_last(((T226*)(oBC256code)),b1); }/*]*/ } /*FI*/} /*No:CODE_ATTRIBUTE.opcode_dadd*/ /*No:TYPE_GENERIC.fz_is_invalid*/ int r720id(T720* C){ int R=0; R=(((T355*)((T355*)(r720run_class(C)))))->_id/*4*/; return R; } void r720jvm_target_descriptor_in(T720* C,T0* a1){ /*IF*/if (r720is_dummy_expanded(C)) { r7extend(((T7*)a1),'B'); } /*FI*/} /*No:TYPE_GENERIC.jvm_if_x_eq*/ int r720has_creation(T720* C,T0* a1){ int R=0; R=r605has_creation(((T605*)(r720base_class(C))),a1); return R; } /*No:TYPE_GENERIC.set_run_type_memory*/ /*No:TYPE_GENERIC.is_anchored*/ /*No:TYPE_GENERIC.is_array*/ int r720is_a(T720* C,T0* a1){ int R=0; T0* _t2=NULL; T0* _t1=NULL; int _i=0; /*IF*/if (X291is_none(a1)) { } else if ((r720run_class(C))==((void*)(X291run_class(a1)))) { R=1; } else if (X291is_generic(a1)) { /*IF*/if ((r720base_class(C))==((void*)(X291base_class(a1)))) { R=1; _i=(((T701*)((T701*)((((T720*)C))->_generic_list/*8*/))))->_upper/*8*/; while (!((!(R))||((_i)==(0)))) { _t1=X291run_type(r701item(((T701*)((((T720*)C))->_generic_list/*8*/)),_i)); _t2=X291run_type(r701item(((T701*)(X291generic_list(a1))),_i)); /*IF*/if (X291is_a(_t1,_t2)) { _i=(_i)-(1); } else { R=0; /*[IRF3.6append*/{T0* b1=((T0*)ms59_470); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ } /*FI*/} } else if (r605is_subclass_of(((T605*)(r720base_class(C))),X291base_class(a1))) { R=r605is_a_vncg(((T605*)(r720base_class(C))),(T0*)C,a1); } /*FI*/} else { /*IF*/if (r605is_subclass_of(((T605*)(r720base_class(C))),X291base_class(a1))) { R=1; } /*FI*/} /*FI*//*IF*/if (!(R)) { r683add_type((T0*)C,((T0*)ms71_470)); r683add_type(a1,((T0*)ms1_720)); } /*FI*/return R; } /*No:TYPE_GENERIC.jvm_to_reference*/ T0* r720run_type(T720* C){ T0* R=NULL; /*IF*/if (r720is_run_type(C)) { R=(((T720*)C))->_run_type_memory/*16*/; } /*FI*/return R; } /*No:TYPE_GENERIC.is_pointer*/ int r720is_dummy_expanded(T720* C){ int R=0; /*IF*/if (r720is_user_expanded(C)) { R=(r355writable_attributes(((T355*)(r720run_class(C)))))==((void*)(NULL)); } /*FI*/return R; } int r720jvm_push_default(T720* C){ int R=0; R=1; /*IF*/if (r720is_expanded(C)) { r355jvm_expanded_push_default(((T355*)(r720run_class(C)))); } else { /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1); /*]*/ } /*FI*/return R; } /*No:TYPE_GENERIC.is_string*/ /*No:TYPE_GENERIC.is_like_feature*/ /*No:TYPE_GENERIC.is_like_current*/ void r720basic_checks(T720* C){ T0* _fgl=NULL; T0* _bc=NULL; _bc=r720base_class(C); _fgl=(((T605*)((T605*)_bc)))->_formal_generic_list/*28*/; /*IF*/if ((_fgl)==((void*)(NULL))) { r683add_position(/*(IRF4.6start_position*/(((T451*)((T451*)((((T720*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/); /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)((T605*)_bc)))->_base_class_name/*24*/))))->_to_string/*0*/; r7append(((T7*)(oBC683explanation)),b1); }/*]*/ /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms2_720); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } else if ((/*(IRF4.6count*/(((T681*)((T681*)((((T881*)((T881*)_fgl)))->_list/*4*/))))->_upper/*8*//*)*/)!=(r701count(((T701*)((((T720*)C))->_generic_list/*8*/))))) { r683add_position(/*(IRF4.6start_position*/(((T451*)((T451*)((((T720*)C))->_base_class_name/*4*/))))->_start_position/*4*//*)*/); r683add_position((((T881*)((T881*)_fgl)))->_start_position/*0*/); /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms61_470); r683fatal_error(((T683*)(oBC364eh)),b1); }/*]*/ } /*FI*/} void r720make(T720* C,T0* a1,T0* a2){ T0* _t=NULL; int _i=0; C->_base_class_name=a1; C->_generic_list=a2; r7copy(((T7*)(oBC720tmp_mark)),(((T451*)((T451*)a1)))->_to_string/*0*/); r7extend(((T7*)(oBC720tmp_mark)),'\133'); _i=1; while (!((_i)>((((T701*)((T701*)a2)))->_upper/*8*/))) { _t=r701item(((T701*)a2),_i); r7append(((T7*)(oBC720tmp_mark)),X291written_mark(_t)); _i=(_i)+(1); /*IF*/if ((_i)<=((((T701*)((T701*)a2)))->_upper/*8*/)) { r7extend(((T7*)(oBC720tmp_mark)),'\54'); } /*FI*/} r7extend(((T7*)(oBC720tmp_mark)),'\135'); C->_written_mark=r902item(oBC720tmp_mark); } T0* r720jvm_root_class(void){ if (fBC364jvm_root_class==0){ T0* R=NULL; fBC364jvm_root_class=1; {T7*n=malloc(sizeof(*n)); *n=M7; r7make(n,12); R=(T0*)n; } r7copy(((T7*)R),(((T228*)((T228*)(oBC364jvm))))->_output_name/*16*/); r7extend(((T7*)R),'\57'); r7append(((T7*)R),((T0*)ms112_470)); oBC364jvm_root_class=R;} return oBC364jvm_root_class;} T0* r720type_any(void){ if (fBC364type_any==0){ T0* R=NULL; fBC364type_any=1; {T669*n=malloc(sizeof(*n)); *n=M669; r669make(n,NULL); R=(T0*)n; } oBC364type_any=R;} return oBC364type_any;} void r720jvm_return_code(T720* C){ /*IF*/if (r720is_expanded(C)) { r355jvm_expanded_return_code(((T355*)(r720run_class(C)))); } else { /*[IRF3.2opcode_areturn*//*[IRF3.6add_u1*/{int b1=176; r226add_last(((T226*)(oBC256code)),b1); }/*]*/ /*]*/ } /*FI*/} /*No:TYPE_GENERIC.jvm_xnewarray*/ void r720jvm_descriptor_in(T720* C,T0* a1){ /*IF*/if (r720is_expanded(C)) { r355jvm_expanded_descriptor_in(((T355*)(r720run_class(C))),a1); } else { r7append(((T7*)a1),r720jvm_root_descriptor()); } /*FI*/} /*No:TYPE_GENERIC.start_position*/ /*No:TYPE_GENERIC.fz_inako*/ int r720is_user_expanded(T720* C){ int R=0; R=(((T605*)((T605*)(r720base_class(C)))))->_is_expanded/*20*/; return R; } /*No:TYPE_GENERIC.is_character*/ /*No:TYPE_GENERIC.written_mark*/ T0* r720to_runnable(T720* C,T0* a1){ T0* R=NULL; T0* _rt=NULL; T0* _t2=NULL; T0* _t1=NULL; T0* _rgl=NULL; int _i=0; /*IF*/if (((((T720*)C))->_run_type_memory/*16*/)==((void*)(NULL))) { /*IF*/if (r720is_written_runnable(C)) { C->_run_type_memory=(T0*)C; r720basic_checks(C); R=(T0*)C; } else { _rgl=r701twin(((T701*)((((T720*)C))->_generic_list/*8*/))); _i=(((T701*)((T701*)_rgl)))->_upper/*8*/; while (!((_i)==(0))) { _t1=r701item(((T701*)_rgl),_i); _t2=X291to_runnable(_t1,a1); /*IF*/if (((_t2)==((void*)(NULL)))||(!(X291is_run_type(_t2)))) { r683add_type(_t1,((T0*)ms72_470)); r683print_as_error(((T683*)(oBC364eh))); _i=0; } else { /*[IRF3.6put*/{T701* C1=((T701*)_rgl); T0* b1=_t2; int b2=_i; ((((T701*)C1))->_storage/*0*/)[(b2)-((((T701*)C1))->_lower/*12*/)]=(b1); }/*]*/ } /*FI*/_t2=X291run_type(_t2); /*IF*/if (X291is_expanded(_t2)) { r355set_at_run_time(((T355*)(X291run_class(_t2)))); } /*FI*/_i=(_i)-(1); } {T720*n=malloc(sizeof(*n)); *n=M720; r720make_runnable(n,(T0*)C,_rgl); _rt=(T0*)n; } /*IF*/if (((((T720*)C))->_run_type_memory/*16*/)==((void*)(NULL))) { C->_run_type_memory=_rt; R=(T0*)C; } else { R=r720twin(C); /*[IRF3.3set_run_type_memory*/((((T720*)(((T720*)R))))->_run_type_memory)=(_rt); /*]*/ } /*FI*/} /*FI*/} else if (r720is_written_runnable(C)) { R=(T0*)C; } else { _rgl=r701twin(((T701*)((((T720*)C))->_generic_list/*8*/))); _i=(((T701*)((T701*)_rgl)))->_upper/*8*/; while (!((_i)==(0))) { _t1=r701item(((T701*)_rgl),_i); _t2=X291to_runnable(_t1,a1); /*IF*/if (((_t2)==((void*)(NULL)))||(!(X291is_run_type(_t2)))) { r683add_type(_t1,((T0*)ms72_470)); r683print_as_error(((T683*)(oBC364eh))); _i=0; } else { /*[IRF3.6put*/{T701* C1=((T701*)_rgl); T0* b1=_t2; int b2=_i; ((((T701*)C1))->_storage/*0*/)[(b2)-((((T701*)C1))->_lower/*12*/)]=(b1); }/*]*/ } /*FI*/_t2=X291run_type(_t2); /*IF*/if (X291is_expanded(_t2)) { r355set_at_run_time(((T355*)(X291run_class(_t2)))); } /*FI*/_i=(_i)-(1); } {T720*n=malloc(sizeof(*n)); *n=M720; r720make_runnable(n,(T0*)C,_rgl); _rt=(T0*)n; } R=r720twin(C); /*[IRF3.3set_run_type_memory*/((((T720*)(((T720*)R))))->_run_type_memory)=(_rt); /*]*/ } /*FI*/return R; } int r720is_run_type(T720* C){ int R=0; /*IF*/if (((((T720*)C))->_run_type_memory/*16*/)!=((void*)(NULL))) { R=1; } else if (r720is_written_runnable(C)) { C->_run_type_memory=(T0*)C; r720basic_checks(C); R=1; } /*FI*/return R; } /*No:TYPE_GENERIC.run_type_memory*/ /*No:TYPE_GENERIC.is_formal_generic*/ /*No:TYPE_GENERIC.generic_list*/ /*No:TYPE_GENERIC.is_real*/ int r720is_written_runnable(T720* C){ int R=0; T0* _t=NULL; int _i=0; R=1; _i=(((T701*)((T701*)((((T720*)C))->_generic_list/*8*/))))->_upper/*8*/; while (!((!(R))||((_i)==(0)))) { _t=r701item(((T701*)((((T720*)C))->_generic_list/*8*/)),_i); /*IF*/if (X291is_run_type(_t)) { /*IF*/if ((X291run_type(_t))==((void*)(_t))) { } else { R=0; } /*FI*/} else { R=0; } /*FI*/_i=(_i)-(1); } return R; } T0* r720twin(T720* C){ T0* R=NULL; R=malloc(sizeof(*C)); *((T720*)R)=*C; return R; } /*No:TYPE_GENERIC.fz_bnga*/ void r720standard_jvm_check_class_invariant(T720* C){ /*IF*/if (r590invariant_check(((T590*)(oBC364run_control)))) { r355jvm_check_class_invariant(((T355*)(r720run_class(C)))); } /*FI*/} /*No:TYPE_GENERIC.is_bit*/ /*No:TYPE_GENERIC.jvm_check_class_invariant*/ T0* r720jvm_root_descriptor(void){ if (fBC364jvm_root_descriptor==0){ T0* R=NULL; fBC364jvm_root_descriptor=1; {T7*n=malloc(sizeof(*n)); *n=M7; r7make(n,12); R=(T0*)n; } r7extend(((T7*)R),'L'); r7append(((T7*)R),r720jvm_root_class()); r7extend(((T7*)R),'\73'); oBC364jvm_root_descriptor=R;} return oBC364jvm_root_descriptor;} /*No:TYPE_GENERIC.jvm_xaload*/ T0* r720smallest_ancestor(T720* C,T0* a1){ T0* R=NULL; T0* _rto=NULL; _rto=X291run_type(a1); /*IF*/if (X291is_none(a1)) { R=(T0*)C; } else if (X291is_any(_rto)) { R=_rto; } else if (X291is_a(_rto,r720run_type(C))) { R=(((T720*)C))->_run_type_memory/*16*/; } else { /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0); /*]*/ r38clear(((T38*)(oBC683positions))); /*]*/ /*IF*/if (r720is_a(((T720*)(r720run_type(C))),_rto)) { R=_rto; } else { /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0); /*]*/ r38clear(((T38*)(oBC683positions))); /*]*/ /*IF*/if (X291is_generic(_rto)) { R=r720type_any(); } else { R=X291smallest_ancestor(_rto,(T0*)C); } /*FI*/} /*FI*/} /*FI*/return R; } /*No:TYPE_GENERIC.is_boolean*/ T0*oBC720tmp_mark=NULL; /*No:TYPE_GENERIC.is_double*/ int r720jvm_stack_space(void){ int R=0; /*IF*//*AF*//*AE*/ R=1; /*FI*/return R; } T0* r720run_class(T720* C){ T0* R=NULL; /*IF*/if (r720is_run_type(C)) { R=r604run_class((((T720*)C))->_run_type_memory/*16*/); } /*FI*/return R; } T0* r720run_time_mark(T720* C){ T0* R=NULL; /*IF*/if (r720is_run_type(C)) { R=(((T720*)((T720*)((((T720*)C))->_run_type_memory/*16*/))))->_written_mark/*12*/; } /*FI*/return R; } int r720is_a_in(T720* C,T0* a1,T0* a2){ int R=0; T0* _ct=NULL; T0* _t2=NULL; T0* _t1=NULL; /*IF*/if (((((T720*)C))->_written_mark/*12*/)==((void*)(X291written_mark(a1)))) { R=1; } else { _ct=(((T355*)((T355*)a2)))->_current_type/*0*/; _t1=r720to_runnable(C,_ct); _t2=X291to_runnable(a1,_ct); /*IF*/if ((X291run_time_mark(_t1))==((void*)(X291run_time_mark(_t2)))) { R=1; } else { R=X291is_a(_t1,_t2); } /*FI*/} /*FI*/return R; } T0* r720look_up_for(T720* C,T0* a1,T0* a2){ T0* R=NULL; R=r605look_up_for(((T605*)(r720base_class(C))),a1,a2); return R; } /*No:TYPE_GENERIC.jvm_convert_to*/ T0* r720expanded_initializer(T720* C){ T0* R=NULL; /*IF*/if (r720is_expanded(C)) { R=r605expanded_initializer(((T605*)(r720base_class(C))),(T0*)C); } /*FI*/return R; } /*No:TYPE_GENERIC.fz_jvm_root*/ /*No:TYPE_GENERIC.jvm_if_x_ne*/ /*No:TYPE_GENERIC.fz_dot*/ /*No:TYPE_GENERIC.is_generic*/ /*No:TYPE_GENERIC.fz_bga*/ void r720jvm_write_local(T720* C,int a1){ /*IF*/if (r720is_expanded(C)) { r355jvm_expanded_write_local(((T355*)(r720run_class(C))),a1); } else { r256opcode_astore(((T256*)(oBC364code_attribute)),a1); } /*FI*/} void r720jvm_initialize_local(T720* C,int a1){ /*IF*/if (r720is_expanded(C)) { r355jvm_expanded_push_default(((T355*)(r720run_class(C)))); } else { /*[IRF3.4opcode_aconst_null*/r256opcode(((T256*)(oBC364code_attribute)),1,1); /*]*/ } /*FI*/r720jvm_write_local(C,a1); } /*No:TYPE_GENERIC.used_as_reference*/ int r720is_reference(T720* C){ int R=0; R=!((((T605*)((T605*)(r720base_class(C)))))->_is_expanded/*20*/); return R; } T0* r720base_class(T720* C){ T0* R=NULL; T0* _bcn=NULL; _bcn=(((T720*)C))->_base_class_name/*4*/; /*IF*/if ((_bcn)!=((void*)(NULL))) { R=r451base_class(((T451*)_bcn)); } else { /*[IRF3.6append*/{T0* b1=((T0*)ms3_291); r7append(((T7*)(oBC683explanation)),b1); }/*]*/ r683add_type((T0*)C,((T0*)ms67_470)); r683print_as_fatal_error(((T683*)(oBC364eh))); } /*FI*/return R; } /*No:TYPE_GENERIC.jvm_xastore*/ /*No:TYPE_GENERIC.fatal_error*/ /*No:TYPE_GENERIC.is_any*/